package com.erp.gather.service;


import com.erp.gather.domain.ErpCollectProductCategory;
import com.erp.gather.domain.bo.ErpCollectProductCategoryBo;
import com.erp.gather.domain.dto.ErpCollectProductCategoryDto;
import com.erp.gather.domain.vo.ErpCollectProductCategoryVo;
import com.ruoyi.common.core.domain.R;

import java.util.Collection;
import java.util.List;

/**
 * 采集商品类目Service接口
 *
 * @author erp
 * @date 2023-03-22
 */
public interface IErpCollectProductCategoryService {

    List<ErpCollectProductCategory> selectTopList();

    List<Object> selectList(ErpCollectProductCategoryBo bo);

    List<ErpCollectProductCategoryVo> queryList(ErpCollectProductCategoryBo bo);

    ErpCollectProductCategoryVo queryById(Long id);

    Boolean insertByBo(ErpCollectProductCategoryBo bo);

    Boolean updateByBo(ErpCollectProductCategoryBo bo);

    Boolean deleteWithValidByIds(List<Long> asList, boolean b);

    List<Object> selectAlreadyList();

    List<ErpCollectProductCategoryDto> selectStatisticsList(String categoryName, Long brandId);

    List<ErpCollectProductCategory> querySubordinateCategory(String categoryId);

    R<Object> createPrimaryCategory();

    Boolean judgeIsBottomLevel(Long categoryId);

    List<ErpCollectProductCategory> getCategoryList(List<String> category);

    List<Long> getCategoryTreeListForStore(Long categoryId);

    /**
     * @Description: 根据类目名称，模糊查询类目ID集合
     * @Author: j.zh
     * @Date: 2024/6/9
     * @param categoryName
     * @return
     * @Version: 4.0.0
    **/
    List<Long> getCategoryIdListByCategoryName(String categoryName);
}
